Computers / Programming / Language References / Assembly / TI TMS9900

TI TMS9900 Architecture

Overview

The TMS9900 is a 16-bit processor released by Texas Instruments in 1976. It's a single chip implementation of TI’s TI-990 mini-computer architecture. It was used in low-end versions of the TI-990 as well as home computers like the TI-99/4 and TI-99/4A.

The TMS9980 is a simplified version of the TMS9900 used in lower end computers like the TM-990/189 university board.

The following is based on the TMS9900 Microprocessor Assembly Language Programmer's Guide and the Assembler built into UNIBUG for the TM 990/189

Source Line Format

[Label] Opcode [Operand[,Operand]] [Comment]

Label

The label field is used to identify the instruction for use by other instructions and corresponds to the location of that instruction

A label can be up to 6 characters (2 for the 189) and must start in the first column with an alphabetic character. The rest of the characters can be alphanumeric

Opcode

The opcode field contains the nonmuonic for the instruction or assembler directive and must be separated from the label with whitespace even if the label is blank

Operands

Operands are separated from the opcode by whitespace

Operands are arguments to the instruction or directive. If multiple operands are specified then they should be separated by commas

The 189 assembler doesn't allow spaces between operands

Comments

The comment field contains information used to annotate and describe the program and may contain any ASCII characters. Comments must be separated from the opcode, or operands if they are present, by whitespace

A single line comment starts with an asterisk in the first column

Number Literals

Hexadecimal values are prefixed with >

Directives

AORG

Sets the current location for assembling instructions

label AORG value

BSS

Advances the current location by the specified number of bytes

label BSS value

DATA

Places 16-bit values at the current location. Can also take two characters contained in single quotes

label DATA value[,value…]

END

Ends the current program

END entryPoint

EQU

Defines a compiler symbol and assigns it a value

symbol equ value

TEXT

Takes a character string as input in double quotes and places it at the current location. A zero byte is placed after the last character

TEXT "value"